#include <stdio.h>
#include <stdlib.h>

struct Tree_Node {
    int val;
    struct Tree_Node *left;
    struct Tree_Node *right;
};

void preorder_Traversal(struct Tree_Node* root) {
    if (root == NULL) {
        return;
    }
    printf("%d ", root->val);
    preorder_Traversal(root->left);
    preorder_Traversal(root->right);
}

struct Tree_Node* createNode(int val) {
    struct Tree_Node* Node = (struct Tree_Node*)malloc(sizeof(struct Tree_Node));
    Node->val = val;
    Node->left = NULL;
    Node->right = NULL;
    return Node;
}

int main() {
    struct Tree_Node* root = createNode(1);
    root->left = createNode(2);
    root->right = createNode(3);
    root->left->left = createNode(4);
    root->left->right = createNode(5);

    preorder_Traversal(root);
    printf("\n");

    return 0;
}